package com.ruoyi.merchant.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 商家打印机对象 merchant_printers
 */
@Data
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MerchantPrinter extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 打印机ID */
    private Long printerId;

    /** 商家ID */
    private Long merchantId;

    /** 打印机名称 */
    @Excel(name = "打印机名称")
    private String printerName;

    /** 打印机品牌 */
    @Excel(name = "品牌")
    private String printerBrand;

    /** 打印机型号 */
    @Excel(name = "型号")
    private String printerModel;

    /** 打印机序列号 */
    @Excel(name = "序列号")
    private String printerSn;

    /** 打印机密钥 */
    private String printerKey;

    /** 连接方式：1-云打印，2-蓝牙，3-WiFi，4-USB */
    @Excel(name = "连接方式", readConverterExp = "1=云打印,2=蓝牙,3=WiFi,4=USB")
    private Integer connectionType;

    /** IP地址 */
    private String ipAddress;

    /** 端口号 */
    private Integer port;

    /** 打印纸宽度 */
    @Excel(name = "纸宽", readConverterExp = "58=58mm,80=80mm")
    private Integer printWidth;

    /** 自动打印新订单 */
    private Integer autoPrintOrder;

    /** 打印份数 */
    private Integer printCopies;

    /** 打印类型配置（JSON） */
    private String printTypes;

    /** 是否默认打印机 */
    private Integer isDefault;

    /** 是否在线 */
    private Integer isOnline;

    /** 最后心跳时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastHeartbeat;

    /** 状态：0-停用，1-启用，2-维护中 */
    @Excel(name = "状态", readConverterExp = "0=停用,1=启用,2=维护中")
    private Integer status;

    /** 错误信息 */
    private String errorMessage;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deletedAt;
}
